﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using GEA_Controle_Processos.Data;
using GEA_Controle_Processos.Data.Negocio;
using System.Collections;

namespace GEA_Controle_de_Processos.Modulos.Restrito
{
    public partial class TelaCadastroProduto : System.Web.UI.Page
    {
        NegocioProduto negocioProduto;
        protected void Page_Load(object sender, EventArgs e)
        {
            negocioProduto = new NegocioProduto();
        }

        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            gvwProduto.DataBind();
        }

        protected void gvwProduto_DataBinding(object sender, EventArgs e)
        {
            gvwProduto.PageSize = Convert.ToInt16(ddlLinhas.SelectedValue);
        }

        protected void ddlLinhas_SelectedIndexChanged(object sender, EventArgs e)
        {
            gvwProduto.DataBind();
        }

        protected void odsGridViewProduto_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            if(tbxCodigo.Text != "")
              e.InputParameters["idProduto"] = tbxCodigo.Text;
            else
                e.InputParameters["idProduto"] = null;
            e.InputParameters["descricao"] = tbxNome.Text;
        }

        protected void odsFormViewProduto_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            if (gvwProduto.SelectedDataKey != null)
                e.InputParameters["idProduto"] = gvwProduto.SelectedDataKey.Value; 
        }

        protected void gvwProduto_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (fvwProduto.CurrentMode != FormViewMode.ReadOnly)
            {
                fvwProduto.ChangeMode(FormViewMode.ReadOnly);
            }
            fvwProduto.DataBind();
        }

        protected void odsFormViewProduto_Inserting(object sender, ObjectDataSourceMethodEventArgs e)
        {
            //Dica Resolver InputParametrs Com Entity Frameork
            Produto produto = new Produto();
            IDictionary paramsFromPage = e.InputParameters;
            produto = (Produto)e.InputParameters["produto"];

            TextBox desc = (TextBox)fvwProduto.FindControl("tbxDescricaoIns");
            TextBox fabr = (TextBox)fvwProduto.FindControl("tbxFabricanteIns");
            DropDownList ddlforn = (DropDownList)fvwProduto.FindControl("ddlFornecedorIns");
            DropDownList ddltipPr = (DropDownList)fvwProduto.FindControl("ddlTipoProdutoIns");
            DropDownList ddlUn = (DropDownList)fvwProduto.FindControl("ddlUnidadeIns");
            DropDownList ddlClassif = (DropDownList)fvwProduto.FindControl("ddlClassficIns");
            TextBox metric = (TextBox)fvwProduto.FindControl("tbxMetricaIns");
            TextBox precoComp = (TextBox)fvwProduto.FindControl("tbxPreCompraIns");
            TextBox precoVend = (TextBox)fvwProduto.FindControl("tbxPreVendaIns");
            TextBox perct = (TextBox)fvwProduto.FindControl("tbxPercetualIns");
            TextBox qtd = (TextBox)fvwProduto.FindControl("tbxQtdIns");
            TextBox total = (TextBox)fvwProduto.FindControl("tbxTotalIns");
            TextBox dataC = (TextBox)fvwProduto.FindControl("dataCompIns");
            
            produto.descricao = desc.Text;
            produto.fabricante = fabr.Text;
            produto.Fornecedor_idFornecedor = Convert.ToInt32(ddlforn.SelectedValue);
            produto.TipoProduto_idTipo = Convert.ToInt32(ddltipPr.SelectedValue);
            produto.unidade = ddlUn.SelectedValue;
            produto.classificacao = ddlClassif.SelectedValue;
            produto.metrica = Convert.ToInt32(metric.Text);
            produto.valorCompra = Convert.ToDecimal(precoComp.Text);
            produto.percetual = Convert.ToInt32(perct.Text);
            produto.valorVenda = Convert.ToDecimal(precoVend.Text);
            produto.quantidade = Convert.ToInt32(qtd.Text);
            produto.valorTotal = Convert.ToDecimal(total.Text);
            produto.dataCompraProduto = Convert.ToDateTime(dataC.Text);
            produto.dataEntrada = DateTime.Now.Date;
            produto.usuarioEntrada = "";
            produto.dataAlteracao = DateTime.Now.Date;
            produto.usuarioAlteracao = "";

            //paramsFromPage.Clear();
            //paramsFromPage.Add("produto", produto);
            //e.InputParameters["produto"] = produto;
           

            produto = null; ;
            desc.Dispose();
            fabr.Dispose();
            ddlforn.Dispose();
            ddltipPr.Dispose();
            ddlUn.Dispose();
            ddlClassif.Dispose();
            metric.Dispose();
            precoComp.Dispose();
            precoVend.Dispose();
            perct.Dispose();
            qtd.Dispose();
            total.Dispose();

        }

        protected void tbxPercetualIns_TextChanged(object sender, EventArgs e)
        {
            TextBox precoComp = (TextBox)fvwProduto.FindControl("tbxPreCompraIns");
            TextBox perct = (TextBox)fvwProduto.FindControl("tbxPercetualIns");
            TextBox precoVend = (TextBox)fvwProduto.FindControl("tbxPreVendaIns");
            if (precoComp.Text != "")
            {
                Decimal percetual = Convert.ToDecimal(perct.Text) / 100;
                Decimal valorcompra = Convert.ToDecimal(precoComp.Text);
                Decimal valorvenda = valorcompra + (percetual * valorcompra);
                precoVend.Text = Convert.ToString(valorvenda);
            }

            precoComp.Dispose();
            perct.Dispose();
            precoVend.Dispose();
        }

        protected void tbxQtdIns_TextChanged(object sender, EventArgs e)
        {
            TextBox qtd = (TextBox)fvwProduto.FindControl("tbxQtdIns");
            TextBox total = (TextBox)fvwProduto.FindControl("tbxTotalIns");
            TextBox precoComp = (TextBox)fvwProduto.FindControl("tbxPreCompraIns");
            if (precoComp.Text != "")
            {
                total.Text = Convert.ToString(Convert.ToDecimal(qtd.Text) * Convert.ToDecimal(precoComp.Text));
            }
            qtd.Dispose();
            total.Dispose();
            precoComp.Dispose();
        }

        protected void odsFormViewProduto_Inserted(object sender, ObjectDataSourceStatusEventArgs e)
        {
            gvwProduto.DataBind();
        }

        protected void odsFormViewProduto_Updating(object sender, ObjectDataSourceMethodEventArgs e)
        {
        }

        protected void btnIn_Click(object sender, EventArgs e)
        {
            Produto produto = new Produto();

            TextBox desc = (TextBox)fvwProduto.FindControl("tbxDescricaoIns");
            TextBox fabr = (TextBox)fvwProduto.FindControl("tbxFabricanteIns");
            DropDownList ddlforn = (DropDownList)fvwProduto.FindControl("ddlFornecedorIns");
            DropDownList ddltipPr = (DropDownList)fvwProduto.FindControl("ddlTipoProdutoIns");
            DropDownList ddlUn = (DropDownList)fvwProduto.FindControl("ddlUnidadeIns");
            DropDownList ddlClassif = (DropDownList)fvwProduto.FindControl("ddlClassficIns");
            TextBox metric = (TextBox)fvwProduto.FindControl("tbxMetricaIns");
            TextBox precoComp = (TextBox)fvwProduto.FindControl("tbxPreCompraIns");
            TextBox precoVend = (TextBox)fvwProduto.FindControl("tbxPreVendaIns");
            TextBox perct = (TextBox)fvwProduto.FindControl("tbxPercetualIns");
            TextBox qtd = (TextBox)fvwProduto.FindControl("tbxQtdIns");
            TextBox total = (TextBox)fvwProduto.FindControl("tbxTotalIns");
            TextBox dataC = (TextBox)fvwProduto.FindControl("dataCompIns");

            produto.descricao = desc.Text;
            produto.fabricante = fabr.Text;
            produto.Fornecedor_idFornecedor = Convert.ToInt32(ddlforn.SelectedValue);
            produto.TipoProduto_idTipo = Convert.ToInt32(ddltipPr.SelectedValue);
            produto.unidade = ddlUn.SelectedValue;
            produto.classificacao = ddlClassif.SelectedValue;
            produto.metrica = Convert.ToInt32(metric.Text);
            produto.valorCompra = Convert.ToDecimal(precoComp.Text);
            produto.percetual = Convert.ToInt32(perct.Text);
            produto.valorVenda = Convert.ToDecimal(precoVend.Text);
            produto.quantidade = Convert.ToInt32(qtd.Text);
            produto.quantidadeEstoque = Convert.ToInt32(qtd.Text);
            produto.valorTotal = Convert.ToDecimal(total.Text);
            produto.dataCompraProduto = Convert.ToDateTime(dataC.Text);
            produto.dataEntrada = DateTime.Now.Date;
            produto.usuarioEntrada = "";
            produto.dataAlteracao = DateTime.Now.Date;
            produto.usuarioAlteracao = "";

            negocioProduto.Inserir(produto);
            gvwProduto.DataBind();
            produto = null; ;
            negocioProduto = null;
            desc.Dispose();
            fabr.Dispose();
            ddlforn.Dispose();
            ddltipPr.Dispose();
            ddlUn.Dispose();
            ddlClassif.Dispose();
            metric.Dispose();
            precoComp.Dispose();
            precoVend.Dispose();
            perct.Dispose();
            qtd.Dispose();
            total.Dispose();
        }
    }
}